﻿#include "GameServer.h"
#include <QCoreApplication>
#include <QDebug>
#include <csignal>
#include <iostream>

#ifdef Q_OS_WIN
#include <Windows.h>
#endif

int main(int argc, char *argv[])
{
    QCoreApplication app1(argc, argv);

    qDebug() << "====================================";
    qDebug() << "MUD游戏服务器启动器";
    qDebug() << "====================================";
    
    // 设置应用程序信息
    app1.setApplicationName("MUD Game Server");
    app1.setApplicationVersion("1.0");
    app1.setOrganizationName("MUD Studio");
    
    // 解析命令行参数
    quint16 port = 12345; // 默认端口

    // 创建MUD游戏服务器
    GameServer* g_server = new GameServer(&app1);
    
    // 启动服务器
    if (!g_server->startServer(port)) 
    {
        qCritical() << "MUD服务器启动失败！";
        delete g_server;
        return -1;
    }

    qDebug() << "MUD服务器运行中... 按 Ctrl+C 停止";
    qDebug() << "等待勇士们的挑战！";
    
    // 进入事件循环
    int result = app1.exec();
    
    // 清理
    qDebug() << "正在清理MUD服务器资源...";
    
    if (g_server) 
    {
        g_server->stopServer();
        delete g_server;
        g_server = nullptr;
    }
    
    qDebug() << "MUD服务器已完全停止";
    return result;
}